Flowcharts

There are several commands for creating boxes with text in them. This can be a box with either one line of text or with two lines of text. The rest is just a matter of drawing lines and circle segments with arrows. If the text is to scale with the picture one needs to use the postscript fonts. The result of scaling the TEX fonts is usually rather ugly, because these fonts are pixel fonts. Here we present an example. It might describe a system for the automatic computation of cross-sections:

\begin{center} \begin{picture}(320,320)(0,0)
\SetPFont{Helvetica}{10}
\SetScale{0.8}
\ArrowLine(200,40)(200,10)   \ArrowLine(200,100)(200,40)
\ArrowLine(200,150)(200,100) \ArrowLine(100,130)(200,100)
\ArrowLine(85,95)(200,100)   \ArrowLine(260,105)(200,100)
\ArrowLine(250,135)(200,100) \ArrowLine(160,75)(200,100)
\ArrowLine(200,100)(250,70)  \ArrowLine(200,185)(200,150)
\ArrowLine(200,220)(200,185) \ArrowLine(200,250)(200,220)
\ArrowLine(240,263)(200,250) \ArrowLine(240,237)(200,250)
\ArrowLine(200,285)(200,250) \ArrowLine(200,310)(200,285)
\ArrowLine(200,335)(200,310) \ArrowLine(180,360)(200,335)
\ArrowLine(200,385)(180,360) \ArrowLine(50,370)(180,360)
\ArrowArc(200,247.5)(62.5,90,180)
\ArrowArc(200,247.5)(62.5,180,270)
\ArrowLine(210,385)(300,360) \ArrowLine(210,335)(300,360)
\ArrowLine(80,300)(80,130)   \ArrowLine(190,335)(80,300)
\ArrowLine(190,385)(80,300)  \ArrowLine(50,335)(80,300)
\ArrowLine(300,360)(340,340) \ArrowArcn(205,347.5)(37.5,90,270)

\BCirc(200,100){10}  \BCirc(200,100){5}
\BCirc(200,40){7.5}  \BCirc(200,250){10}
\BCirc(200,250){5}   \BCirc(200,310){7.5}
\BCirc(180,360){7.5} \BCirc(80,300){7.5}
\BCirc(300,360){7.5} \GCirc(200,185){7.5}{0.9}
\BText(200,285){Form program} \BText(200,335){Diagrams}
\BText(200,385){Model}        \BText(200,10){events}
\BText(80,95){Axolib}         \BText(350,335){Pictures}
\GText(137.5,247.5){0.9}{instructions}
\B2Text(260,70){Cross-sections}{Histograms}
\B2Text(140,75){Monte Carlo}{Routine}
\B2Text(275,105){FF}{1 loop integrals}
\G2Text(260,135){0.9}{Spiderlib}{Fortran/C}
\G2Text(200,150){0.9}{Matrix}{Element}
\B2Text(80,130){Kinematics}{Configuration}
\G2Text(200,220){0.9}{Output}{Formula}
\G2Text(260,263){0.9}{Spiderlib}{Form part}
\G2Text(260,237){0.9}{FF support}{library}
\B2Text(40,370){Reaction}{selection}
\B2Text(40,340){Specification}{Cuts, etc.}

\PText(211,36)(0)[lb]{Event Generator}
\PText(211,181)(0)[lb]{Code Generator}
\PText(162,258)(0)[lb]{FORM}
\PText(211,301)(0)[lb]{Form program construction}
\PText(191,362)(0)[lb]{Diagram}
\PText(191,352)(0)[lb]{Generator}
\PText(311,370)(0)[lb]{Postscript}
\PText(311,360)(0)[lb]{Generator}
\PText(91,292)(0)[lb]{Kinematics}
\PText(91,282)(0)[lb]{Generator}
\end{picture} \end{center}
This gives the chart

\begin{picture}(320,320)(0,0)
\def Times-Roman {Helvetica } \def 10 {10 }
\def 1...
...\PText(91,292)(0)[lb]{Kinematics}
\PText(91,282)(0)[lb]{Generator}
\end{picture}